package com.stefanie.study.sfp;

import lombok.Data;

/**
 * @author: stefanie-zy
 * @time: 2024/6/27-14:27
 * @description: 产品抽象类-简化版本-将方法从工厂抽象到抽象类当中
 */
@Data
public abstract class ProductOr {

    // 属性
    private String sku;
    private String name;

    // 公共方法实现
    public void methodSame() {
        this.sku = "prod-";
    }

    // 声明抽象业务方法
    public abstract void methodDiff();

    // 抽象方法
    public static Product getProduct(String str) {
        Product product = null;

        if ("A".equals(str)) {
            product = new ProductA();
        } else if ("B".equals(str)) {
            product = new ProductB();
        }

        return product;
    }
}
